ADIC: An Extensible Automatic Differentiation Tool for ANSI-C
نویسندگان
چکیده
In scienti c computing, we often require the derivatives @f=@x of a function f expressed as a program with respect to some input parameter(s) x, say. Automatic di erentiation (AD) techniques augment the program with derivative computation by applying the chain rule of calculus to elementary operations in an automated fashion. This article introduces ADIC (Automatic Di erentiation of C), a new AD tool for ANSI-C programs. ADIC is currently the only tool for ANSI-C that employs a source-to-source program transformation approach; that is, it takes a C code and produces a new C code that computes the original results as well as the derivatives. We rst present ADIC \by example" to illustrate the functionality and ease of use of ADIC and then describe in detail the architecture of ADIC. ADIC incorporates a modular design that provides a foundation for both rapid prototyping of better AD algorithms and their sharing across AD tools for di erent languages. A component architecture called AIF (Automatic Di erentiation Intermediate Form) separates core AD concepts from their language-speci c implementation and allows the development of generic AD modules that can be reused directly in other AIF-based AD tools. The language-speci c ADIC front-end and backend canonicalize C programs to make them t for semantic augmentation and manage, for example, the association of a program variable with its derivative object. We also report on applications of ADIC to a semiconductor device simulator, 3-D CFD grid generator, vehicle simulator, and neural network code.
منابع مشابه
Statistical On-Chip Interconnect Modeling: An Application of Automatic Differentiation
Automatic differentiation is a technique for computing derivatives accurately and efficiently with minimal human effort. We employed this technique to generate derivative information of FCAP2 (2-D) and FCAP3 (3-D) programs that simulate the parasitic effects of interconnects and devices. This derivative information is used in the statistical modeling of worst-case interconnect delays and on-chi...
متن کاملAn Application Server for Automatic Differentiation
The ADIC Application Server brings the accuracy and efficiency of automatic differentiation to the World Wide Web. Users of the ADIC Application Server can upload source code written in ANSI-C, manage remote files, differentiate selected functions, and download code augmented with derivative computations. Using a simple driver and linking to the appropriate libraries, the user can compile and r...
متن کاملApplication of Automatic Differentiation to 3-D Volume Grid Generation Software1
Automatic differentiation (AD) is a methodology for developing reliable sensitivity-enhanced versions of arbitrary computer programs with little human effort. As such, it can vastly accelerate the use of advanced simulation codes in a multidisciplinary design optimization context, as the time for generating and verifying derivative codes is greatly reduced. In this paper, we report on the appli...
متن کاملOn the Automatic Differentiation of Computer Programs
-4utomatic differentiation (AD) is a methodology for developing sensitivity-enhanced versions of arbitrary computer programs. In this paper, we provide some background information on AD and address some frequently asked questions. We introduce the ADIFOR and ADIC tools for the automatic differentiation of Fortran 77 and ANSI-C programs, respectively, and give an example of applying ADIFOR in th...
متن کاملADIC2: Development of a component source transformation system for differentiating C and C++
We present a new tool, ADIC2, for automatic differentiation (AD) of C and C++ code through source-to-source transformation. ADIC2 is the successor of the ADIC differentiation tool, which supports forward mode AD of C and a small subset of C++. ADIC2 was completely redesigned and reimplemented as part of the OpenAD software framework, resulting in a robust, flexible, and extensible tool for diff...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Softw., Pract. Exper.
دوره 27 شماره
صفحات -
تاریخ انتشار 1997